package com.ys.nms.module.business.controller.admin.devicesLog.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 设备日志新增/修改 Request VO")
@Data
public class DevicesLogSaveReqVO {

    @Schema(description = "日志ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29966")
    private Integer logId;

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32076")
    @NotNull(message = "ID不能为空")
    private Integer deviceId;

    @Schema(description = "插入时间")
    private LocalDateTime inserted;

    @Schema(description = "状态，1为在线，其他为离线", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "状态，1为在线，其他为离线不能为空")
    private Boolean status;

    @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "不对")
    @NotEmpty(message = "原因不能为空")
    private String statusReason;

    @Schema(description = "系统运行时间")
    private Long uptime;

    @Schema(description = "代理运行时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "代理运行时间不能为空")
    private Integer agentUptime;

    @Schema(description = "最后轮询时间")
    private LocalDateTime lastPolled;

    @Schema(description = "最后轮询尝试时间")
    private LocalDateTime lastPollAttempted;

    @Schema(description = "最后轮询耗时")
    private Double lastPolledTimetaken;

    @Schema(description = "最后发现耗时")
    private Double lastDiscoveredTimetaken;

    @Schema(description = "最后发现时间")
    private LocalDateTime lastDiscovered;

    @Schema(description = "最后Ping时间")
    private LocalDateTime lastPing;

    @Schema(description = "最后Ping耗时")
    private Double lastPingTimetaken;

    @Schema(description = "SNMP启用状态")
    private String snmpyes;

}